#ifndef _P7ZG_CUI_H_
#define _P7ZG_CUI_H_

#include <gtk/gtk.h>
#define LEVEL_STR_STORE    "Store"
#define LEVEL_STR_FASTEST    "Fastest"
#define LEVEL_STR_FAST    "Fast"
#define LEVEL_STR_NORMAL    "Normal"
#define LEVEL_STR_MAXIMUM    "Maximum"
#define LEVEL_STR_ULTRA    "Ultra"

typedef struct c_ui{
    const char* target;
    const char** fileV;
    int fileCount;
    long long splitVolSize;
    int format;
    const char* passwd;
    
    GtkWidget*  mainDlg;
    GtkWidget*   archiveEty;
    GtkWidget*  archiveBrowsBtn;
	GtkWidget* formatCbt;
	GtkWidget* levelCbt;
	GtkWidget* methodCbt;
	GtkWidget* dictSizeCbt;
	GtkWidget* wordSizeCbt;
	GtkWidget* solidBlkSizeCbt;
	GtkWidget* cpuThreadsCbt;
    
	GtkWidget* splitVolSizeCbt;
	GtkWidget* updateModeCbt;
    GtkWidget*   passwdEty;
    GtkEntry*   passwdCheckEty;
    GtkWidget*    passEncMethodCbt;
    GtkWidget*    encFilenamesCbtn;
    GtkWidget*  cancelBtn;
    GtkWidget*  okBtn;
    
    int cRet;
}P7zgCUi;

int P7zgCUiInit(P7zgCUi* this, GtkWidget* parent, int fileCount, const char* target, const char** files);
int P7zgCUiResetTo7z(P7zgCUi* self);
int P7zgCUiRun(P7zgCUi* self);
int P7zgCUiExit(P7zgCUi* self);

#endif
